package com.zhangye.test.controller;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSON;
import com.zhangye.test.entity.Results;
import com.zhangye.test.entity.SimilarResult;
import com.zhangye.test.model.Admin;
import com.zhangye.test.model.EasyAr;
import com.zhangye.test.util.ImageURLgetBase64;
import com.zhangye.test.util.PageInfo;
import com.zhangye.test.util.Result;
import com.zhangye.test.util.cloudUtils;

/**
 * ar申请
 * 作者： 张叶
 * 创建时间：2018年5月25日  上午9:33:53
 */
@Controller
@RequestMapping("admin/arAudit")
public class ArAuditController extends BaseController{

	
	/**
	 * ar列表
	 * 作者： 张叶
	 * 创建时间：2018年5月11日  下午2:02:28
	 */
	@RequestMapping("/list")
	public String list(Model model){
		return "admin/arAudit/list";
	}
	
	
	/**
	 * 分页显示 
	 * 作者：张叶
	 * 时间：2016年9月7日 上午11:58:15
	 */
	@ResponseBody
	@RequestMapping(value = "arJson" , method = RequestMethod.POST)
	public JSON arJson(PageInfo pageInfo, Integer rows, Integer page,
			String sidx, String sord, Model model, String adminId,
			String name,String status,HttpSession session) {
		// 分页信息
		if (pageInfo == null) {
			pageInfo = new PageInfo();
		}
		if (pageInfo.getPage() < 2
				|| pageInfo.getPage() >= pageInfo.getTotalPage()) {
			pageInfo.setCount(0);
		}
		if (rows != null) {// 每页显示条数
			pageInfo.setPageSize(rows);
		}
		if (page != null) {// 当前页
			pageInfo.setPage(page);
		}
		// 排序
		String order = "";
		if (sidx != null && sidx != "") {// 排序字段
			order = " order by " + sidx + " ";
			if (sord != null && sord != "") {// 排序
				order += sord;
			}
		}
		// 搜索条件
		String where = "1 = 1 and status = 'audit'";
		
		List<Map<String, Object>> list = easyArService.selectByPage(pageInfo,where, order);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		for(int i = 0 ; i < list.size() ; i ++){
			Date createTime = (Date) list.get(i).get("create_at");
			list.get(i).put("create_at", sdf.format(createTime));
			String videoUrl = (String)list.get(i).get("video_url");
			list.get(i).put("video_url", videoUrl.split(",")[0]);
			if(videoUrl.split(",").length > 1){
				list.get(i).put("video_link", videoUrl.split(",")[1]);
			}
			
		}
		Map<String, Object> data = new HashMap<String, Object>();
		data.put("total", pageInfo.getTotalPage());
		data.put("list", list);
		return (JSON) JSON.toJSON(data);
	}

	
	/**
	 * 审核
	 * 作者： 张叶
	 * 创建时间：2018年5月25日  上午10:50:38
	 */
	@ResponseBody
	@RequestMapping(value = "/auditArAudit/{id}", method = RequestMethod.POST)
	public Result auditArAudit(@PathVariable Long id){
		Result result = new Result();
		Admin a = (Admin)session.getAttribute("currentUser");
		if(id != null && !"".equals(id)){
			EasyAr ea = easyArService.selectByPrimaryKey(id);
			if(ea != null && !"".equals(ea)){
				int i = 0;
				int type = ea.getType();
				if(type == 1){//普通视频，直接通过
					i = easyArService.auditEasyArType(id,a);
				}else{
					String imageUrl = ea.getImageUrl();
					try {
						SimilarResult sr = cloudUtils.similarCloud(ImageURLgetBase64.getBase64(imageUrl));
						if(sr != null && !"".equals(sr)){
							List<Results> list = sr.getSimilar().getResults();
							if(list.size() == 0){
								i = easyArService.auditEasyAr(id,a);
							}else{
								result.code = 4;
								result.message = "已有相似图片，审核失败";
								return result;
							}
						}
					} catch (Exception e) {
						result.code = 4;
						result.message = "已有相似图片，审核失败";
						return result;
					}	
				}
				if(i == 0 ){
					result.code = 0;
					result.message = "操作成功";
				}else{
					result.code = 1;
					result.message = "系统错误，操作失败";
				}
			}else{
				result.code = 3;
				result.message = "该作品或已删除，请刷新重试";
			}
		}else{
			result.code = 2;
			result.message = "参数不能为空";
		}
		return result;
	}
}
